home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 20 / Cream of the Crop 20 (Terry Blount) (1996).iso / program / skeleton.zip / WndProc.asm < prev   
Assembly Source File  |  1996-06-02  |  2KB  |  106 lines

  1.         TITLE    WndProc
  2.         INCLUDE    COMMON.INC
  3.  
  4.  
  5.         .CONST
  6. szHelpFile    SBYTE    "Skeleton.hlp",0h
  7.  
  8.  
  9.         .CODE
  10. WndProc        PROC    STDCALL hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
  11.         mov    eax,uMsg
  12.  
  13.         cmp    eax,WM_MENUSELECT    ;highest Msg ID processed
  14.         ja    caseDEFAULT        ;if above then default
  15.         je    caseWM_MENUSELECT
  16.         cmp    eax,WM_PAINT
  17.         je    caseWM_PAINT
  18.         cmp    eax,WM_SIZE
  19.         je    caseWM_SIZE
  20.         cmp    eax,WM_CREATE
  21.         je    caseWM_CREATE
  22.         cmp    eax,WM_CLOSE
  23.         je    caseWM_CLOSE
  24.         cmp    eax,WM_DESTROY
  25.         je    caseWM_DESTROY
  26.         cmp    eax,WM_NOTIFY
  27.         je    caseWM_NOTIFY        ;process notifications
  28.         cmp    eax,WM_COMMAND
  29.         je    caseWM_COMMAND        ;process menu commands
  30.  
  31. caseDEFAULT:    INVOKE    DefWindowProc, hWnd, uMsg, wParam, lParam
  32.         jmp    caseRETURN
  33.  
  34. caseWM_MENUSELECT:
  35.         call    MsgWM_MENUSELECT
  36.         jmp    caseRETURN0
  37.  
  38. caseWM_PAINT:    call    MsgWM_PAINT
  39.         jmp    caseRETURN0
  40.  
  41. caseWM_SIZE:    call    MsgWM_SIZE
  42.         jmp    caseRETURN0
  43.  
  44. caseWM_CREATE:    call    MsgWM_CREATE
  45.         jmp    caseRETURN
  46.  
  47. caseWM_CLOSE:    call    MsgWM_CLOSE
  48.         jmp    caseRETURN0
  49.  
  50. caseWM_DESTROY:    INVOKE    WinHelp, hMainWnd, ADDR szHelpFile, HELP_QUIT, 0h
  51.         INVOKE    PostQuitMessage, 0h
  52.         jmp    caseRETURN0
  53.  
  54.  
  55. caseWM_NOTIFY:    mov    eax,lParam    ;**** Process Notifications ****
  56.         mov    eax,(NMHDR PTR [eax]).code
  57.         cmp    eax,TTN_NEEDTEXT
  58.         je    caseTTN_NEEDTEXT
  59.         jmp    caseDEFAULT
  60.  
  61. caseTTN_NEEDTEXT:
  62.         call    NtfTTN_NEEDTEXT
  63.         jmp    caseRETURN0
  64.  
  65.  
  66. caseWM_COMMAND:    mov    eax,wParam    ;**** Process Menu Commands ****
  67.         and    eax,0FFFFh
  68.  
  69.         cmp    eax,IDM_NEW
  70.         je    caseIDM_NEW
  71.         cmp    eax,IDM_OPEN
  72.         je    caseIDM_OPEN
  73.         cmp    eax,IDM_SAVE
  74.         je    caseIDM_SAVE
  75.         cmp    eax,IDM_SAVEAS
  76.         je    caseIDM_SAVEAS
  77.         cmp    eax,IDM_EXIT
  78.         je    caseWM_CLOSE
  79.         cmp    eax,IDM_HELPTOPICS
  80.         je    caseIDM_HELPTOPICS
  81.         cmp    eax,IDM_ABOUT
  82.         je    caseIDM_ABOUT
  83.         jmp    caseDEFAULT
  84.  
  85. caseIDM_NEW:    call    CmdIDM_NEW
  86.         jmp    caseRETURN0
  87.  
  88. caseIDM_OPEN:    call    CmdIDM_OPEN
  89.         jmp    caseRETURN0
  90.  
  91. caseIDM_SAVEAS:    and    fFileStatus,NOT NAMEDbit
  92. caseIDM_SAVE:    call    CmdIDM_SAVE
  93.         jmp    caseRETURN0
  94.  
  95. caseIDM_HELPTOPICS:
  96.         INVOKE    WinHelp, hMainWnd, ADDR szHelpFile, HELP_FINDER, 0h
  97.         jmp    caseRETURN0
  98.  
  99. caseIDM_ABOUT:    INVOKE    DialogBoxParam, hInst, IDD_ABOUT, hMainWnd, ADDR About, NULL
  100.         jmp    caseRETURN0
  101.  
  102. caseRETURN0:    xor    eax,eax        ;return 0 if message is processed
  103. caseRETURN:    ret
  104. WndProc        ENDP
  105.  
  106.         END